import { Column, Entity, PrimaryGeneratedColumn } from "typeorm";


@Entity('user', { comment: '用户信息表' })
export class User {
  /**
   * 自增ID
   */
  @PrimaryGeneratedColumn({ type: 'int', comment: '自增ID' })
  id: number

  /**
   * 显示名称
   */
  @Column({ type: 'varchar', length: 100, default: '', comment: '显示名称' })
  operatorName: string

  /**
   * 登录用户名，目前使用手机号，手机号系统唯一
   */
  @Column({ type: 'varchar', length: 100, default: '', comment: '登录用户名' })
  loginCode: string

  /**
   * 头像
   */
  @Column({
    type: 'varchar',
    length: 100,
    default: 'http://oss.linyingtech.com/image/8257379b86ff575f4deb30461f393d8a.png',
    comment: '头像',
  })
  avatar: string

  /**
   * 登录密码
   */
  @Column({ type: 'varchar', length: 100, default: '', comment: '登录密码' })
  password: string

  /**
   * 身份 1普通公司员工；2公司管理员；3系统管理员；目前只用1和3，系统管理员可以可看本租户所有数据
   */
  @Column({ type: 'int', default: 1, comment: '身份 1普通公司员工；2公司管理员；3系统管理员；' })
  identity: number

  /**
   * 状态 1正常；2禁用；
   */
  @Column({ type: 'int', default: 1, comment: '状态 1正常；2禁用；' })
  status: number

  /**
   * 登录凭证
   */
  @Column({ type: 'varchar', length: 100, default: '', comment: '登录凭证' })
  token: string

  /**
   * 微信openid，发送微信报警使用
   */
  @Column({ type: 'varchar', length: 100, default: '', comment: '微信openid，发送微信报警使用' })
  wxOpenId: string

  /**
   * 角色
   */
  @Column({ type: 'simple-array', comment: '角色' })
  roles: number[]


  /**
   * 是否已删除，逻辑删除标识；0表示正常；1表示已删除
   */
  @Column({ type: 'int', default: 0, nullable: false, comment: '是否已删除，逻辑删除标识；0表示正常；1表示已删除' })
  isDel: number

  /**
   * 备注，处理说明
   */
  @Column({ type: 'varchar', length: 200, nullable: true, comment: '备注，处理说明' })
  remark: string

  /**
   * 创建时间
   */
  @Column({ type: 'datetime', default: () => 'CURRENT_TIMESTAMP', comment: '创建时间' })
  createdAt: Date

  /**
   * 修改时间
   */
  @Column({ type: 'datetime', default: () => 'CURRENT_TIMESTAMP', onUpdate: 'CURRENT_TIMESTAMP', comment: '更新时间' })
  updatedAt: Date
}
